home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYN401.ZIP / class / pointer.d < prev    next >
Text File  |  1996-02-04  |  1KB  |  81 lines

  1.  
  2. /*
  3.  *
  4.  *    Copyright (c) 1993-1996 Algorithms Corporation
  5.  *    3020 Liberty Hills Drive
  6.  *    Franklin, TN  37067
  7.  *
  8.  *    ALL RIGHTS RESERVED.
  9.  *
  10.  *
  11.  *
  12.  */
  13.  
  14.  
  15. #include <math.h>
  16.  
  17. defclass  Pointer  {
  18.     void    *iVal;
  19. };
  20.  
  21. cmeth    gNewWithPtr, <vNew> (void *val)
  22. {
  23.     object    obj = gNew(super);
  24.     ivType    *iv = ivPtr(obj);
  25.     iVal = val;
  26.     return(obj);
  27. }
  28.  
  29. imeth    void    *gPointerValue()
  30. {
  31.     return iVal;
  32. }
  33.  
  34. imeth    gChangeValue(val)
  35. {
  36.     iVal = (void *) val;
  37.     return self;
  38. }
  39.  
  40. imeth    int    gHash()
  41. {
  42.     double    t;
  43.  
  44.     t = .6125423371    * (double) (unsigned long) iVal;
  45.     t = t < 0.0 ? -t : t;
  46.     return (int) (BIG_INT * (t - floor(t)));
  47. }
  48.  
  49. imeth    int    gCompare(obj)
  50. {
  51.     void    *sv, *ov;
  52.  
  53.     ChkArg(obj, 2);
  54.     if (ClassOf(obj) != CLASS)
  55.         return gCompare(super, obj);
  56.     if ((sv=iVal) < (ov=ivPtr(obj)->iVal))
  57.         return -1;
  58.     else if (sv == ov)
  59.         return 0;
  60.     else
  61.         return 1;
  62. }
  63.  
  64. imeth    gStringRepValue()
  65. {
  66.     return vSprintf(String, "%lp", iVal);
  67. }
  68.  
  69.  
  70. /*
  71.  *
  72.  *    Copyright (c) 1993-1996 Algorithms Corporation
  73.  *    3020 Liberty Hills Drive
  74.  *    Franklin, TN  37067
  75.  *
  76.  *    ALL RIGHTS RESERVED.
  77.  *
  78.  *
  79.  *
  80.  */
  81.